//package com.sctvcloud.weiyuan.ui.utils;
//
//import android.content.Context;
//import android.support.annotation.NonNull;
//
//import com.jiongbull.jlog.JLog;
//import com.sctvcloud.weiyuan.ui.adapter.CultureTravelAdapter;
//import com.sctvcloud.weiyuan.ui.adapter.CultureTravelAdapter;
//import com.sctvcloud.weiyuan.ui.adapter.GreatestAdapter;
//import com.sctvcloud.weiyuan.ui.util.IListShowData;
//
//import java.util.ArrayList;
//import java.util.List;
//
//public class CultureTravelDataAddHelper {
//
//    private CultureTravelAdapter adapter;
//
//    private Object syncObj;
//
//    private int bannerPos = -1, expressPos = -1, livePos = -1, posularPos = -1, spcialPos = -1, news_1 = -1, news_2 = -1, news_3 = -1, anchorPos = -1, upPos;
//
//    public CultureTravelDataAddHelper() {
//        syncObj = new Object();
//    }
//
//    private void initAdapter(Context context, List<IListShowData> data) {
//        adapter = new CultureTravelAdapter(context, data);
//        bannerPos = -1;
//        expressPos = -1;
//        livePos = -1;
//        posularPos = -1;
//        spcialPos = -1;
//        news_1 = -1;
//        news_2 = -1;
//        news_3 = -1;
//        anchorPos = -1;
//        upPos = -1;
//    }
//
//    private void initsAdapter(Context context, List<? extends IListShowData> data) {
//        adapter = new CultureTravelAdapter(context, data);
//        bannerPos = -1;
//        expressPos = -1;
//        livePos = -1;
//        posularPos = -1;
//        spcialPos = -1;
//        news_1 = -1;
//        news_2 = -1;
//        news_3 = -1;
//        anchorPos = -1;
//        upPos = -1;
//    }
//
//    private void initAdapter(@NonNull IListShowData data, Context context) {
//        ArrayList<IListShowData> list = new ArrayList<>();
//        list.add(data);
//        adapter = new CultureTravelAdapter(context, list);
//        bannerPos = -1;
//        expressPos = -1;
//        livePos = -1;
//        posularPos = -1;
//        spcialPos = -1;
//        news_1 = -1;
//        news_2 = -1;
//        news_3 = -1;
//        anchorPos = -1;
//        upPos = -1;
//    }
//
//    public CultureTravelAdapter getAdapter(Context context) {
//        synchronized (syncObj) {
//            if (adapter == null) {
//                initAdapter(context, null);
//            }
//        }
//        return adapter;
//    }
//
//    public void setBannerData(Context context, IListShowData data) {
//        if (data == null) {
//            return;
//        }
//        synchronized (syncObj) {
//            bannerPos = addOrRefresh(context, CultureTravelAdapter.VIEWTYPE_BANNER - 1, bannerPos, data);
//            freshOtherPos(CultureTravelAdapter.VIEWTYPE_BANNER, bannerPos, 1);
//        }
////        if (adapter == null) {
////            initAdapter(data, context);
////            bannerPos = 0;
////        } else if (bannerPos == -1) {
////            bannerPos = adapter.addData(data, 0);
////        } else {
////            int pos = adapter.setDataInPos(data, bannerPos, false);
////            if (pos >= 0) {
////                bannerPos = pos;
////            }
////        }
//    }
//
//
//    /**
//     * 刷新页面数据
//     *
//     * @param context
//     * @param data
//     * @param mode
//     */
//    public void setUpDatas(Context context, IListShowData data, int mode) {
//        JLog.e("setUpDatas---mode-", "--mode=" + mode);
//        switch (mode) {
//            case CultureTravelAdapter.VIEWTYPE_BANNER:
//                setBannerData(context, data);
//                break;
//        }
//    }
//
//    //    public void addOrSet24Datas(Context context, List<IListShowData> datas, boolean isReset) {
////        if (datas == null || datas.size() == 0) {
////            return;
////        }
////        synchronized (syncObj) {
////            if (adapter == null) {
////                initAdapter(context, datas);
////            } else if (isReset) {
////                if (upPos < 0) {
////                    adapter.setData(datas);
////                } else {
////                    adapter.resetDatasFrom(upPos, datas, true);
//////                    if (upPos>=adapter.getItemCount()) {
//////                        adapter.addDatas(datas);
//////                    }else {
//////                    }
////                }
////            } else {
////                adapter.addDatas(datas);
////            }
////        }
////    }
//
//    public void addOrSet24Datass(Context context, List<? extends IListShowData> datas, boolean isReset) {
//        if (datas == null || datas.size() == 0) {
//            return;
//        }
//        synchronized (syncObj) {
//            if (adapter == null) {
//                initsAdapter(context, datas);
//            } else if (isReset) {
//                if (upPos < 0) {
//                    adapter.setDatass(datas);
//                } else {
//                    adapter.resetDatasFroms(upPos, datas, true);
////                    if (upPos>=adapter.getItemCount()) {
////                        adapter.addDatas(datas);
////                    }else {
////                    }
//                }
//            } else {
//                int pos = adapter.getItemCount();
//                adapter.addDatass(datas);
//                if (pos > 0) {
//                    adapter.notifyItemChanged(pos - 1);
//                }
//            }
//        }
//    }
//
//    public void remove24data() {
//        synchronized (syncObj) {
//            if (adapter == null || adapter.getItemCount() == 0 || (upPos >= 0 && upPos == adapter.getItemCount() - 1)) {
//                return;
//            }
//            if (upPos < 0) {
//                adapter.clean();
//            } else {
//                adapter.removeFrom(upPos + 1);
//            }
//        }
//    }
//
//    /**
//     * 清理精选栏目数据，只保留banner
//     */
//    public void cleanGreatestdata() {
//        synchronized (syncObj) {
//            if (adapter == null || adapter.getItemCount() == 0 || (upPos >= 0 && upPos == adapter.getItemCount() - 1)) {
//                return;
//            }
//            adapter.removeFrom(0);
//        }
//    }
//
//    private int getUpInsertPos(int targetPos) {
//        if (targetPos == 0) {
//            return targetPos;
//        }
//        if (upPos == -1) {
//            return 0;
//        }
//        switch (targetPos + 1) {
////            case CultureTravelAdapter.VIEWTYPE_BANNER:
////                if (livePos >= 0) {
////                    return livePos;
////                } else {
////                    targetPos = 0;
////                }
////                break;
//
//            default:
//                if (targetPos >= upPos) {
//                    return upPos;
//                }
//
//        }
//        return targetPos;
//    }
//
//    private synchronized int addOrRefresh(Context context, int targetPos, int temPos, @NonNull IListShowData data) {
////        JLog.e("poss befor banner= " + bannerPos + "  express=" + expressPos + "  live=" + livePos + "  popular="
////                + posularPos + "\n up=" + upPos + "  target=" + targetPos + "  temp=" + temPos);
//        if (targetPos == -1) {
//            return temPos;
//        }
//        if (adapter == null) {
//            initAdapter(data, context);
//            return 0;
//        } else {
//            if (temPos == -1) {
//                temPos = adapter.addData(data, getUpInsertPos(targetPos));
//            } else {
//                int pos = adapter.setDataInPos(data, temPos, false);
//                if (pos >= 0) {
//                    temPos = pos;
//                }
//            }
//        }
//        return temPos;
//    }
//
//    public void removeUpItem(int mode) {
//        synchronized (syncObj) {
//            if (adapter == null || mode < 0) {
//                return;
//            } else {
//                int pos = -1;
//                switch (mode) {
//                    case CultureTravelAdapter.VIEWTYPE_BANNER:
//                        pos = bannerPos;
//                        break;
//
//                }
//                if (adapter.removeByPostion(pos)) {
//                    freshOtherPos(mode, pos, -1);
//                }
//            }
//        }
//    }
//
//    private synchronized void freshOtherPos(int mode, int pos, int diff) {
//        boolean isAdd = diff > 0;
//        switch (mode) {
//            case CultureTravelAdapter.VIEWTYPE_BANNER:
//                if (livePos >= 0) {
//                    if (isAdd) {
//                        if (livePos <= pos) {
//                            livePos++;
//                        }
//                    } else {
//                        livePos--;
//                        bannerPos = diff;
//                        diff = livePos;
//                    }
//                    pos = livePos;
//                }
//            case CultureTravelAdapter.VIEWTYPE_LIVE:
//                if (expressPos >= 0) {
//                    if (isAdd) {
//                        if (expressPos <= pos) {
//                            expressPos++;
//                        }
//                    } else {
//                        expressPos--;
//                        livePos = diff;
//                        diff = expressPos;
//                    }
//                    pos = expressPos;
//                }
//            case CultureTravelAdapter.VIEWTYPE_EXPRESS:
//                if (livePos >= 0) {
//                    if (isAdd) {
//                        if (livePos <= pos) {
//                            livePos++;
//                        }
//                    } else {
//                        livePos--;
//                        expressPos = diff;
//                        diff = livePos;
//                    }
//                    pos = livePos;
//                }
//                upPos = pos;
//            case CultureTravelAdapter.VIEWTYPE_POPULAR:
//
//
//                if (!isAdd) {
//                    posularPos = -1;
//                    upPos--;
//                } else {
//                    upPos++;
//                }
//                break;
//
//        }
//
//    }
//
//    public void onDestory() {
//    }
//
//    public boolean hasDatas() {
//        return adapter != null && adapter.getItemCount() > 0;
//    }
//}
